//package com.hjqjl.common_lib.ui;
//
//import android.Manifest;
//import android.annotation.SuppressLint;
//import android.content.Context;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.os.Bundle;
//import android.view.View;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.TextView;
//
//import androidx.annotation.NonNull;
//
//import com.blankj.utilcode.util.LogUtils;
//import com.blankj.utilcode.util.NetworkUtils;
//import com.blankj.utilcode.util.StringUtils;
//import com.blankj.utilcode.util.ToastUtils;
//import com.google.gson.Gson;
//import com.tencent.smtt.sdk.TbsVideo;
//import com.tencent.smtt.sdk.WebChromeClient;
//import com.tencent.smtt.sdk.WebSettings;
//import com.tencent.smtt.sdk.WebView;
//import com.tencent.smtt.sdk.WebViewClient;
//import com.xunao.tree.R;
//import com.xunao.tree.TreeApplication;
//import com.xunao.tree.dialog.WaitingDialog;
//import com.xunao.tree.model.AppAddDownloadRecordsBean;
//import com.xunao.tree.model.FindKnowledgeLibraryByIdBean;
//import com.xunao.tree.net.ApiHttpClient;
//import com.xunao.tree.net.ApiUrl;
//import com.xunao.tree.net.CSMHttpCallback;
//import com.xunao.tree.ui.showfile.FileDisplayActivity;
//import com.xunao.tree.ui.showfile.FileDisplayUtils;
//import com.xunao.tree.ui.showfile.ImageDisplayActivity;
//import com.xunao.tree.util.MediaFileUtil;
//import com.xunao.tree.view.HorizontalProgressView;
//import com.xunao.tree.widget.DialogAlertFragment;
//import com.zhy.http.okhttp.OkHttpUtils;
//import com.zhy.http.okhttp.callback.FileCallBack;
//
//import java.io.File;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import butterknife.BindView;
//import butterknife.ButterKnife;
//import okhttp3.Call;
//import pub.devrel.easypermissions.EasyPermissions;
//
//public class WebActivity2 extends BaseActivity implements EasyPermissions.PermissionCallbacks {
//    public static final String KNOWLEDGE_LIBRARY_ID = "knowledgeLibraryId";
//    @BindView(R.id.ll_bg)
//    LinearLayout ll_bg;
//    @BindView(R.id.img_back)
//    ImageView imgBack;
//    @BindView(R.id.text_title)
//    TextView textTitle;
//    @BindView(R.id.progressView)
//    HorizontalProgressView progressView;
//    @BindView(R.id.wv_show)
//    WebView webView;
//    @BindView(R.id.iv_web_tiwen)
//    ImageView ivWebTiwen;
//    @BindView(R.id.iv_web_xiazai)
//    ImageView ivWebXiazai;
//    @BindView(R.id.iv_search)
//    ImageView ivSearch;
////    @BindView(R.id.tv_download)
////    TextView tvDownload;
//
//    private String mTitle = "";
//    String downUrl;
//    private String mKnowledgeLibraryId = "";
//    private String mDepartmentId = "";
//    private String mCategoryId = "";
//
//    public static void launch(Context context, String knowledgeLibraryId) {
//        Intent starter = new Intent(context, WebActivity2.class);
//        starter.putExtra(KNOWLEDGE_LIBRARY_ID, knowledgeLibraryId);
//        context.startActivity(starter);
//    }
//
//    @Override
//    public void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_web2);
//        ButterKnife.bind(this);
//        initEvent();
//        initData();
////        mTbsReaderView = getTbsReaderView(mContext);
////        rlShow.addView(mTbsReaderView, new RelativeLayout.LayoutParams(
////                ViewGroup.LayoutParams.MATCH_PARENT,
////                ViewGroup.LayoutParams.MATCH_PARENT));
//    }
//
//    private void initEvent() {
//        imgBack.setOnClickListener(view -> finish());
//        ivSearch.setOnClickListener(v -> {
//            if (StringUtils.isEmpty(mDepartmentId) | StringUtils.isEmpty(mCategoryId)) {
//                ToastUtils.showShort("没有获取到DepartmentId或CategoryId");
//                return;
//            }
//            SearchActivity.launch(mContext, mDepartmentId, mCategoryId);
//        });
//        ivWebTiwen.setOnClickListener(v -> MessageProblemActivity.launch(mContext, "" + mKnowledgeLibraryId));
//        ivWebXiazai.setOnClickListener(v -> {
//
//            String[] perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
//                    Manifest.permission.WRITE_EXTERNAL_STORAGE};
//            if (!EasyPermissions.hasPermissions(mContext, perms)) {
//                EasyPermissions.requestPermissions(WebActivity2.this, "需要访问手机存储权限！", 10086, perms);
//            } else {
//                if (StringUtils.isEmpty(downUrl)) {
//                    ToastUtils.showShort("没有获取到下载地址");
//                    return;
//                }
//                if (FileDisplayUtils.isLocalExist(downUrl)) {
//                    DialogAlertFragment alertDialogFragment = DialogAlertFragment.newInstance
//                            ("打开文件", "文件已存在，是否要打开文件？", "确定", "取消"
//                                    , new DialogInterface.OnClickListener() {
//                                        @Override
//                                        public void onClick(DialogInterface dialog, int which) {
//                                            if (MediaFileUtil.isVideoFileType(downUrl)) {
//                                                startPlay(downUrl);
//                                            } else if (MediaFileUtil.isImageFileType(downUrl)) {
//                                                ImageDisplayActivity.launch(mContext, downUrl, mTitle);
//                                            } else {
//                                                FileDisplayActivity.launch(mContext, downUrl, mTitle);
//                                            }
//                                        }
//                                    }
//                                    , null);
//                    alertDialogFragment.show(getSupportFragmentManager(), "alertDialog");
//                } else {
//                    DialogAlertFragment alertDialogFragment = DialogAlertFragment.newInstance
//                            ("下载文件", "是否要下载文件？", "确定", "取消"
//                                    , new DialogInterface.OnClickListener() {
//                                        @Override
//                                        public void onClick(DialogInterface dialog, int which) {
//                                            appAddDownloadRecords(mKnowledgeLibraryId);//新增下载记录
//                                        }
//                                    }
//                                    , null);
//                    alertDialogFragment.show(getSupportFragmentManager(), "alertDialog");
//                }
//            }
//        });
//    }
//
//
//    /**
//     * 直接调用播放视频
//     *
//     * @param videoUrl 视频地址
//     */
//    private void startPlay(String videoUrl) {
//        //判断当前是否可用
//        if (TbsVideo.canUseTbsPlayer(getApplicationContext())) {
//            //播放视频
//            TbsVideo.openVideo(getApplicationContext(), videoUrl);
//        } else {
//            LogUtils.v("视频播放器未准备好");
//        }
//    }
//
//    @SuppressLint("SetJavaScriptEnabled")
//    private void initData() {
//        mKnowledgeLibraryId = getIntent().getStringExtra(KNOWLEDGE_LIBRARY_ID);
//
//        webView.setHorizontalScrollBarEnabled(false);
//        webView.setVerticalScrollBarEnabled(false);
//        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
//        WebSettings webSettings = webView.getSettings();
//        webSettings.setSavePassword(false);
//        webSettings.setJavaScriptEnabled(true);
//        webSettings.setUseWideViewPort(true);
//        webSettings.setAppCacheEnabled(true);
//        webSettings.setDatabaseEnabled(true);
//        webSettings.setDomStorageEnabled(true);
//        webSettings.setLoadWithOverviewMode(true);
//        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
//        if (NetworkUtils.isConnected()) {
//            webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
//        } else {
//            webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//        }
//        webView.setWebChromeClient(new WebChromeClient() {
//            @Override
//            public void onProgressChanged(WebView view, int newProgress) {
//                progressView.setProgress(newProgress);
//                if (newProgress == 100) {
//                    progressView.setVisibility(View.GONE);
//                }
//                super.onProgressChanged(view, newProgress);
//            }
//        });
//        webView.setWebViewClient(new WebViewClient() {
//            @Override
//            public boolean shouldOverrideUrlLoading(WebView webView, String url) {
//                return super.shouldOverrideUrlLoading(webView, url);
////                return false;
//            }
//        });
//
//        findKnowledgeLibraryById(mKnowledgeLibraryId);
//        addBrowseRecords(mKnowledgeLibraryId);
//    }
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        if (webView != null) {
//            webView.removeAllViews();
//            webView.destroy();
//        }
//    }
//
//    private void findKnowledgeLibraryById(String knowledgeLibraryId) {
//        showWaitDialog();
//        Map<String, String> params = new HashMap<>();
//        params.put("knowledgeLibraryId", knowledgeLibraryId);
//        ApiHttpClient.postJson2(ApiUrl.url, ApiUrl.findKnowledgeLibraryById, params, new CSMHttpCallback() {
//            @Override
//            protected void onSuccess(String jsonStr) {
//                try {
//                    FindKnowledgeLibraryByIdBean myDocumentBean = new Gson().fromJson(jsonStr, FindKnowledgeLibraryByIdBean.class);
//                    if (myDocumentBean != null && myDocumentBean.getData() != null) {
//                        mTitle = myDocumentBean.getData().getEnclosureName();
//                        mDepartmentId = myDocumentBean.getData().getItemId();
//                        mCategoryId = myDocumentBean.getData().getCategory();
//                    }
//                    textTitle.setText("" + mTitle);
//                    String url = ApiUrl.url_dmt + "#/filePreview?token=" + TreeApplication.getInstance().getToken() + "&id=" + mKnowledgeLibraryId + "&userId=" + TreeApplication.getInstance().getUserId();
//                    LogUtils.v(url);
////                    webView.loadUrl("http://debugtbs.qq.com");
//                    webView.loadUrl(url);
////                    http://tj.icekeji.com/userfiles/fileupload/202010/caa730d6c73c423a8f5.doc
//                    downUrl = myDocumentBean.getData().getEnclosure();
//                    LogUtils.v(downUrl);
//
//                } catch (Exception e) {
//                    ToastUtils.showShort(getString(R.string.json_error));
//                    e.printStackTrace();
//                }
//                hideWaitDialog();
//            }
//
//            @Override
//            protected void onFail(String msg) {
//                hideWaitDialog();
//            }
//        });
//    }
//
//    private void addBrowseRecords(String knowledgeLibraryId) {
//        showWaitDialog();
//        Map<String, String> params = new HashMap<>();
//        params.put("fileId", knowledgeLibraryId);
//        ApiHttpClient.post(ApiUrl.url, ApiUrl.addBrowseRecords, params, new CSMHttpCallback() {
//            @Override
//            protected void onSuccess(String jsonStr) {
//                try {
//                    LogUtils.v("新增浏览记录接口调取成功");
//                } catch (Exception e) {
//                    ToastUtils.showShort(getString(R.string.json_error));
//                    e.printStackTrace();
//                }
//                hideWaitDialog();
//            }
//
//            @Override
//            protected void onFail(String msg) {
//                hideWaitDialog();
//            }
//        });
//    }
//
//    /**
//     * app新增下载记录
//     * //判断这个文件能不能下载，能的话下载次数会+1。进行下载文件操作
//     */
//    private void appAddDownloadRecords(String knowledgeLibraryId) {
//        showWaitDialog();
//        Map<String, String> params = new HashMap<>();
//        params.put("fileId", knowledgeLibraryId);
//        ApiHttpClient.post(ApiUrl.url, ApiUrl.appAddDownloadRecords, params, new CSMHttpCallback() {
//            @Override
//            protected void onSuccess(String jsonStr) {
//                try {
//                    AppAddDownloadRecordsBean appAddDownloadRecordsBean = new Gson().fromJson(jsonStr, AppAddDownloadRecordsBean.class);
//                    if (appAddDownloadRecordsBean.isData() == true) {
//                        downFile(downUrl);
//                    } else {
//                        ToastUtils.showShort("您的账户不支持本文件下载");
//                    }
////
//                    LogUtils.v("新增下载记录接口调取成功");
//                } catch (Exception e) {
//                    ToastUtils.showShort(getString(R.string.json_error));
//                    e.printStackTrace();
//                }
//                hideWaitDialog();
//            }
//
//            @Override
//            protected void onFail(String msg) {
//                hideWaitDialog();
//            }
//        });
//    }
//
//    private void downFile(String url) {
//        //1.网络下载、存储路径、
//        File cacheFile = FileDisplayUtils.getCacheFile(url);
//        if (cacheFile.exists()) {
//            if (cacheFile.length() <= 0) {
//                LogUtils.d("删除空文件！！");
//                cacheFile.delete();
//                return;
//            }
//        }
//        WaitingDialog.showLoading(mContext, "下载中");
////        tvDownload.setVisibility(View.VISIBLE);
//        OkHttpUtils//
//                .get()//
//                .url(url)//
//                .build()//
//                .execute(new FileCallBack(FileDisplayUtils.getCacheDir(url).toString(), FileDisplayUtils.getFileName(url)) {
//
//
//                    @Override
//                    public void inProgress(float progress, long total, int id) {
//                        super.inProgress(progress, total, id);
//                        LogUtils.v("" + progress);
////                        tvDownload.setText("下载中...(" + (int) (progress * 100) + "%)");
//                        WaitingDialog.changeMessage("下载中...(" + (int) (progress * 100) + "%)");
//                    }
//
//                    @Override
//                    public void onError(Call call, Exception e, int id) {
//                        LogUtils.d("文件下载失败");
//                        ToastUtils.showShort("文件下载失败");
//                        File file = FileDisplayUtils.getCacheFile(url);
//                        if (!file.exists()) {
//                            LogUtils.d("删除下载失败文件");
//                            file.delete();
//                        }
////                        tvDownload.setVisibility(View.GONE);
//                        WaitingDialog.stopLoading();
//                    }
//
//                    @Override
//                    public void onResponse(File response, int id) {
////                        tvDownload.setVisibility(View.GONE);
//                        ToastUtils.showShort("文件下载成功");
//                        ///storage/emulated/0/007/928a61644c3f420079818aee016a21a6.docx----name:928a61644c3f420079818aee016a21a6.docx
//                        LogUtils.v("onResponse :" + response.getAbsolutePath() + "----name:" + response.getName());
//                        WaitingDialog.stopLoading();
//                    }
//                });
//    }
//
//
//    @Override
//    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
//        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//        // Forward results to EasyPermissions//将结果转发给EasyPermissions
//        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
//    }
//
//    /**
//     * 申请成功时调用
//     *
//     * @param requestCode 请求权限的唯一标识码
//     * @param perms       一系列权限
//     */
//    @Override
//    public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
//        ToastUtils.showShort("权限申请成功！");
//    }
//
//    /**
//     * 申请拒绝时调用
//     *
//     * @param requestCode 请求权限的唯一标识码
//     * @param perms       一系列权限
//     */
//    @Override
//    public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
//        ToastUtils.showShort("您拒绝了权限申请，请在设置里手动开启相应权限！");
//    }
//}
